<!doctype html>
<html lang="en">
<head>
	<title>jQuery UI Effects - Easings Demo</title>
	<link type="text/css" href="../../themes/base/ui.all.css" rel="stylesheet" />
	<script type="text/javascript" src="../../jquery-1.3.1.js"></script>
	<script type="text/javascript" src="../../ui/effects.core.js"></script>
	<link type="text/css" href="../demos.css" rel="stylesheet" />
	<style type="text/css">
	</style>
	<script type="text/javascript">
	function moveToHere(event, easing) {
		var area = $("#area");
		var target = $("#target");
		var offset = area.offset();
		var max = [area.width() - target.width(), area.height() - target.height()];
		var scroll = [document.documentElement.scrollLeft || document.body.scrollLeft,
			document.documentElement.scrollTop || document.body.scrollTop];
		target.animate({left: Math.max(0, Math.min((event.clientX + scroll[0]) - 
			offset.left - (target.width() / 2), max[0])),
			top: Math.max(0, Math.min((event.clientY + scroll[1]) - 
			offset.top - (target.height() / 2), max[1]))},
			2000, easing);
	}

	$(function() {
		$("#area").click(function(event) {
			moveToHere(event, $("#easing").val());
		});
	});
	</script>
</head>
<body>

<div class="demo">

<p><select id="easing">
	<option value="linear">Linear easing</option>
	<option value="swing">Swing easing</option>
	<option value="easeInQuad">Quadratic ease in</option>
	<option value="easeOutQuad">Quadratic ease out</option>
	<option value="easeInOutQuad">Quadratic ease in out</option>
	<option value="easeInCubic">Cubic ease in</option>
	<option value="easeOutCubic">Cubic ease out</option>
	<option value="easeInOutCubic">Cubic ease in out</option>
	<option value="easeInQuart">Quartic ease in</option>
	<option value="easeOutQuart">Quartic ease out</option>
	<option value="easeInOutQuart">Quartic ease in out</option>
	<option value="easeInQuint">Quintic ease in</option>
	<option value="easeOutQuint">Quintic ease out</option>
	<option value="easeInOutQuint">Quintic ease in out</option>
	<option value="easeInSine">Sinusoidal ease in</option>
	<option value="easeOutSine">Sinusoidal ease out</option>
	<option value="easeInOutSine">Sinusoidal ease in out</option>
	<option value="easeInExpo">Exponential ease in</option>
	<option value="easeOutExpo">Exponential ease out</option>
	<option value="easeInOutExpo">Exponential ease in out</option>
	<option value="easeInCirc">Circular ease in</option>
	<option value="easeOutCirc">Circular ease out</option>
	<option value="easeInOutCirc">Circular ease in out</option>
	<option value="easeInElastic">Elastic ease in (decaying sine wave)</option>
	<option value="easeOutElastic">Elastic ease out</option>
	<option value="easeInOutElastic">Elastic ease in out</option>
	<option value="easeInBack">Back ease in (overshooting cubic)</option>
	<option value="easeOutBack">Back ease out</option>
	<option value="easeInOutBack">Back ease in out</option>
	<option value="easeInBounce">Bounce ease in (decaying parabolic)</option>
	<option value="easeOutBounce">Bounce ease out</option>
	<option value="easeInOutBounce">Bounce ease in out</option>
</select>
</p>
<div id="area" style="position: relative; width: 400px; height: 300px; border: 1px solid #bbb;">
	<img id="target" src="images/target.png" style="position: absolute; left: 0px;"/>
</div>
</div><!-- End demo -->

<div class="demo-description">

<p>
Easing is acceleration, a change in speed. Easings control how an animation progresses over time.<br/>
An <b>ease-in</b> starts slow and then speeds up.<br/>
An <b>ease-out</b> starts fast and then slows to a stop.<br/>
An <b>ease-in-out</b> combines the two so that the first half is an ease-in and the second half is an ease-out.
</p>
<p>
Click above to preview the selected easing.
</p>

</div><!-- End demo-description -->

</body>
</html>
